package com.registration.web.utils;

import java.util.Collection;
import net.sf.json.JSONObject;

public class JSONResponse<T> {

    private T datos;

    private String mensaje;

    private boolean exitoso;

    private int records;

    private int total;

    private int page = 1;

    private JSONObject userdata = new JSONObject();

    /**
     * Response Ok
     * @param datos
     */
    public JSONResponse(T datos) {
        this(datos, null, true);
    }

    public JSONResponse(T datos, String mensaje, boolean exitoso) {
        this.datos = datos;
        if(datos instanceof Collection) {
            records = ((Collection)datos).size();
        }
        this.mensaje = mensaje;
        this.exitoso = exitoso;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public void setRecords(int records) {
        this.records = records;
    }

    public void setPage(int page) {
        this.page = page;
    }

    public int getPage() {
        return page;
    }

    public int getRecords() {
        return records;
    }


    public String getMensaje() {
        return mensaje;
    }

    public void setMensaje(String mensaje) {
        this.mensaje = mensaje;
    }

    public boolean isExitoso() {
        return exitoso;
    }

    public void setExitoso(boolean exitoso) {
        this.exitoso = exitoso;
    }

    public void setDatos(T datos) {
        this.datos = datos;
    }

    public T getDatos() {
        return datos;
    }

    public JSONObject getUserdata() {
        return userdata;
    }

    public void setUserdata(JSONObject userdata) {
        this.userdata = userdata;
    }
}
